package com.tjbklx1.pattern.specification.demo3;

public interface IUserSpecification {
	/**
	 * 候选者是否满足要求
	 * 
	 * @param user
	 * @return
	 */
	public boolean isSatisfiedBy(User user);

	/**
	 * and操作
	 * 
	 * @param spec
	 * @return
	 */
	public IUserSpecification and(IUserSpecification spec);

	/**
	 * or操作
	 * 
	 * @param spec
	 * @return
	 */
	public IUserSpecification or(IUserSpecification spec);

	/**
	 * not操作
	 * 
	 * @return
	 */
	public IUserSpecification not();
}